Method and system for presenting personalized products based on digital signage for electronic commerce

ABSTRACT

Method and system for electronic commerce are provided. An image of a user is obtained. A plurality of features based on the image of the user is determined. A group of products based on the plurality of features are selected. A recommendation to the user is provided based on the group of products.

BACKGROUND 1. Technical Field

The present teaching relates generally to methods, systems, andprogramming for electronic commerce (E-commerce). Particularly, thepresent teaching is directed to methods, systems, and programming forproviding a personalized recommendation of products to a user.

2. Discussion of Technical Background

There are more and more public advertisements in an outdoor environment,e.g., at an airport, at a public square, in a taxi, etc. The publicadvertisements are usually statically shown on a board, and may not bechanged over a long period of time. As a result, the staticadvertisements may only be interesting to a small population of viewers.Very recently, digital signage has become a new marketing tool forE-commerce, which may be used to present dynamic multimedia digitaladvertisements. Compared with the static public advertisements, thedigital signage has the advantage of presenting many moreadvertisements. Accordingly, the digital signage may be interesting fora broader range of viewers. However, the existing signage systems areincapable of providing a personalized recommendation of products toevery viewer due to the lack of the viewer's profile (e.g., interest,preference, etc.). Therefore, the existing signage system cannot allowthe viewers to explore only the products that are interesting to them.Additionally, it is challenging for the sellers or the operators of thesignage systems to decide what advertisements should be provided on thesignage systems that are interesting to the viewers. Further, the userengagement of the existing digital signage is very low, which may notmotivate the viewers to come back. As a result, the existing digitalsignage systems for E-commerce may result in a very limited E-commerceconversion rate, i.e., a ratio of the number of viewers who makepurchases to the total number of viewers.

Therefore, there is a need for a method and/or a system for presenting apersonalized recommendation of products to the viewers (or users).

SUMMARY

The present teaching describes methods, systems, and programming forpresenting personalized content.

In one exemplary embodiment, a method, implemented on at least onemachine having at least one processor, storage, and a communicationplatform connected to a network for electronic commerce (E-commerce), isprovided. An image of a user is obtained. A plurality of features basedon the image of the user is determined. A group of products based on theplurality of features are selected. A recommendation to the user isprovided based on the group of products.

In another exemplary embodiment, a system including at least oneprocessor, storage, and a communication platform connected to a networkfor E-commerce, is provided. The system comprises a camera, an imageprocessor, and a display. The camera is configured for obtaining animage of a user. The image processor is configured for determining aplurality of features based on the image of the user, and selecting agroup of products based on the plurality of features. The display isconfigured for providing a recommendation to the user based on the groupof products.

Other concepts relate to software for E-commerce. A software product, inaccord with this concept, includes at least one machine-readablenon-transitory medium and information carried by the medium.

In one exemplary embodiment, a machine-readable tangible andnon-transitory medium having information for E-commerce, wherein theinformation, when read by the machine, causes the machine to perform thefollowing. An image of a user is obtained. A plurality of features basedon the image of the user is determined. A group of products based on theplurality of features are selected. A recommendation to the user isprovided based on the group of products.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments will be more readily understood in view of the followingdescription when accompanied by the below figures and wherein likereference numerals represent like elements, wherein:

FIG. 1 is a high level depiction of an exemplary system for providingpersonalized products to a user, according to an embodiment of thepresent teaching;

FIG. 2 illustrates an exemplary diagram of a recommendation device,according to an embodiment of the present teaching;

FIG. 3 illustrates a process of decomposing a user image using aphoto-cropper;

FIG. 4 is a flowchart of an exemplary process for providing personalizedproducts to a user, according to an embodiment of the present teaching;

FIG. 5 illustrates an exemplary diagram of a cartoon generator;

FIG. 6 is a flowchart of an exemplary process for creating a cartoonfigure of a user;

FIG. 7 illustrates an exemplary diagram of a face-based recommender,according to an embodiment of the present teaching;

FIG. 8 is a flowchart of an exemplary process for providing personalizedrecommendations based on a facial part of a user image, according to anembodiment of the present teaching;

FIG. 9 illustrates an exemplary diagram of a product selector, accordingto an embodiment of the present teaching;

FIG. 10 is a flowchart of an exemplary process for providing one or moreproducts based on the age and the gender of the user, according to anembodiment of the present teaching;

FIG. 11 illustrates an exemplary diagram of a body-based recommender,according to an embodiment of the present teaching;

FIG. 12 is a flowchart of an exemplary process for training a featuremodel and an attribute model, according to an embodiment of the presentteaching;

FIG. 13 is a flowchart of an exemplary process for providingpersonalized recommendations based on at least one non-facial part of auser image, according to an embodiment of the present teaching;

FIG. 14 illustrates an example of providing personalized recommendationsbased on a non-facial part of a user image, according to an embodimentof the present teaching;

FIG. 15 illustrates an exemplary diagram of an initial value generator;

FIG. 16 is a flowchart of an exemplary process of providing initialparameter values for the feature model and the attribute model in thebody-based recommender;

FIG. 17 illustrates an exemplary process of training a feature model andan attribute model of a body-based recommender, according to anembodiment of the present teaching;

FIG. 18 depicts a general mobile device architecture on which thepresent teaching can be implemented; and

FIG. 19 depicts a general computer architecture on which the presentteaching can be implemented.

DETAILED DESCRIPTION

Reference will now be made in detail to the embodiments of the presentteaching, examples of which are illustrated in the accompanyingdrawings. While the present teaching will be described in conjunctionwith the embodiments, it will be understood that they are not intendedto limit the present teaching to these embodiments. On the contrary, thepresent teaching is intended to cover alternatives, modifications, andequivalents, which may be included within the spirit and scope of thepresent teaching as defined by the appended claims.

In addition, in the following detailed description of embodiments of thepresent teaching, numerous specific details are set forth in order toprovide a thorough understanding of the present teaching. However, itwill be recognized by one of ordinary skill in the art that the presentteaching may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail as not to unnecessarily obscure aspects ofthe embodiments of the present teaching.

Various embodiments in accordance with the present teaching providemethod and system related to E-commerce. More specifically, the methodand system in various embodiments of the present teaching relate toprovide a personalized recommendation of products to a user based on theimage of the user.

For example, there may be a plurality of users standing around arecommendation device. The recommendation device may capture an image ofthe user who is closest to the recommendation device through a camera.The recommendation device further determines the user's productpreferences based on the image of the user. For example, therecommendation device may determine the user's age and gender based onthe facial part of the image. The recommendation device may thenrecommend a first group of products based on the user's age and genderto the user. The first group of products may be the popular productscorresponding to the user's age and gender. In addition oralternatively, the recommendation device may determine the user'sdressing style (e.g., colors, patterns, etc.) based on the one or morenon-facial parts of the image. The recommendation device may thenrecommend a second group of products with the similar dressing style tothe user. The second group of products may include shirts, pants, shoes,bags, purses, and other suitable items with the similar dressing style.In an embodiment, the second group of products may be provided from aproduct database using a deep neural network.

In an embodiment, the recommendation device may recognize the gesture ofthe user. This is done so that after the recommended products arepresented to the user, the user may select one or more products to checkout without touching the screen of the recommendation device.

Further, the recommendation device may also execute a game after theuser selects the one or more product for check out. In an example, acoupon may be provided to the user if the user wins the game. This isdone so that the user engagement may be significantly improves, whichmay motivate the user to come back and use the recommendation deviceagain.

Additional novel features will be set forth in part in the descriptionwhich follows, and in part will become apparent to those skilled in theart upon examination of the following and the accompanying drawings ormay be learned by production or operation of the examples.

FIG. 1 is a high level depiction of an exemplary system 100 forproviding personalized products to a user, according to an embodiment ofthe present teaching. The system 100 may include a recommendation device110 with a camera 115 as a part of the recommendation device 110, anetwork 130, a content server 140. The recommendation device 110 is incommunication with the content server 140 through the network 130. Thecontent server 140 may store a product database. In addition, thecontent server 140 may further store a purchase history database, and/ora user database recording the previous users who made purchases usingthe recommendation device 110. In an embodiment, the recommendationdevice 110 can present desirable products obtained from the contentserver 140, via the network 130.

The network 130 in the system 100 can be a single network or acombination of different networks. For example, the network 130 can be alocal area network (LAN), a wide area network (WAN), a public network, aprivate network, a proprietary network, a Public Telephone SwitchedNetwork (PSTN), the Internet, a wireless network, a virtual network, awireless network like Wi-Fi, Bluetooth, or any combination thereof.

As shown, a plurality of users 120 may stand around the recommendationdevice 110. The recommendation device 110 may use the camera 115 tocapture an image of the user who stands closest to the recommendationdevice 110. The recommendation device 110 may further provide arecommendation of products from the content server 140 to the user 120based on the image of the user 120. For example, the recommendationdevice 110 may determine the user's age and gender based on the facialpart of the image. The recommendation device 110 then may recommend afirst group of products based on the user's age and gender to the user.The first group of products may be the popular products corresponding tothe user's age and gender. In addition or alternatively, therecommendation device 110 may determine the user's dressing style (e.g.,colors, patterns, etc.) based on the one or more non-facial parts of theimage. The recommendation device 110 may then recommend a second groupof products with the similar dressing style to the user. The secondgroup of products may include shirts, pants, shoes, bags, purses, andother suitable items with the similar dressing style. In an embodiment,the second group of products may be provided from a product databaseusing a deep neural network.

In an embodiment, the recommendation device 110 may be able to recognizethe gesture of the user 120. This is done so that after the recommendedproducts are presented to the user 120, the user may select one or moreproducts to check out without touching the screen of the recommendationdevice 110.

Further, the recommendation device 110 may also execute a game after theuser 120 selects the one or more product for check out. In an example, acoupon may be provided to the user if the user wins the game. This isdone so that the user engagement may be significantly improves, whichmay motivate the user 120 to come back and use the recommendation device110 again.

FIG. 2 illustrates an exemplary diagram of the recommendation device110, according to an embodiment of the present teaching. Therecommendation device 110 includes the camera 115, a photo cropper 240,a face-based recommender 255, a body-based recommender 260, a display265, a gesture recognizer 235, a user interface 250, a cartoon generator210, a gaming unit 245, a coupon generator 225, a check-out unit 230,and a card reader 215. The different components of the recommendationdevice 110 may be arranged as shown or in any other suitable manner.

The camera 115 may capture an image of the user 120. The user 120 may beone of a group of users who is closest to the camera 115. The photocropper 240 may obtain the image from the camera 115 and decompose theimage into a facial part of the image and at least one non-facial partof the image (e.g., as shown in FIG. 3). In an embodiment, the camera115 may be turned on all the time. This is done so that the gesturerecognizer 235 may recognize the gestures of the user 120 based on theimage of the user 120 in real time.

The face-based recommender 255 may determine the user's age and genderbased on the facial part of the image. The face-based recommender 255may then determine a first group of products from the content server 140based on the user's age and gender. The first group of products may bethe popular products corresponding to the user's age and gender. Moredetails about the face-based recommender 255 would be described in FIGS.4-10.

The body-based recommender 260 may determine the user's dressing style(e.g., colors, patterns, etc.) based on the one or more non-facial partsof the image. The body-based recommender 260 may then determine a secondgroup of products from the content server 140 based on the user'sdressing style. The second group of products may include shirts, pants,shoes, bags, purses, and other suitable items with the similar dressingstyle. In an embodiment, the second group of products may be providedfrom a product database using a deep neural network. More details aboutthe body-based recommender 260 would be described in FIGS. 11-13. In anembodiment, the photo cropper 240, the face-based recommender 255, andthe body-based recommender 260 may be collectively referred to as animage processor.

The display 265 may present the first group of the products and thesecond group of products to the user 120. The user 120 may select one ormore products by touching the one or more products on the display 265 orthrough any suitable external devices such as a mouse and/or a keyboard.In addition or alternatively, the user 120 may select the one or moreproducts by make a suitable physical movement, which may be recognizedby the gesture recognizer 235 though the camera 115. The user interface250 may in communicate with the display 265 and instruct the display 265to present the selected one or more products to the user 120. In themeanwhile, the check-out unit 230 may calculate the total prices of theone or more products and instruct the display 265 to present the balanceto the user 120.

The cartoon generator 210 may generate a cartoon figure of the user 120.The cartoon figure may be a virtual representation of the user 120. Thecartoon figure may be used in the gaming unit 245 for an interactivegame as presented in the display 265. For example, the cartoon figuremay make a movement (e.g., run, jump, laugh, etc.) in the game when theuser makes the same movement. In some examples, when the user 120 winsthe game, the gaming unit 245 may instruct the coupon generator 225 togenerate a coupon. In an embodiment, the coupon may be transmitted tothe user 120 via an email, a text message, etc. In an embodiment, thecheck-out unit 230 may apply the discount represented by the coupon tothe total balance and instruct the display 265 to present the finalbalance after discount to the user 120. The card reader 215 may be usedto read the financial card (e.g., credit card, debit card, gift card,etc.) information of the user 120 to complete the transaction. After thetransaction is complete, the display 265 may further present informationabout e.g., when and where to pick up the selected one or more products.

FIG. 3 illustrates a process of decomposing a user image 310 using thephoto-cropper 240. As shown, the photo cropper 240 may decompose theuser image 310 into a facial part of the image 320 and at least onenon-facial part of the image 330. The user image 310 may be captured bythe camera 115 in FIG. 2. As described above, the facial part of theimage 320 may be used by the face-based recommender 255 to select thefirst group of products. The first group of products may be the popularproducts corresponding to the user's age and gender determined based onthe facial part of the image 320. The at least one non-facial part ofthe image 330 may be used by the body-based recommender 260 to selectthe second group of products. The second group of products may includeshirts, pants, shoes, bags, purses, and other suitable items with thesimilar dressing style determined based on the at least one non-facialpart of the image 330.

FIG. 4 is a flowchart of an exemplary process for providing personalizedproducts to a user, according to an embodiment of the present teaching.The process may be implemented by the recommendation device 110.

At step 410, an image of a user is captured. At step 415, the image iscropped into a facial part of the image and at least one non-facial partof the image.

At step 420, a first group of products may be provided based on thefacial part of the image. The first group of products may be the popularproducts corresponding to the user's age and gender determined based onthe facial part of the image. At step 425, a second group of productsmay be provided based on the facial part of the image. The second groupof products may include shirts, pants, shoes, bags, purses, and othersuitable items with the similar dressing style of the user determinedbased on the at least one non-facial part of the image.

At step 430, the first group of products and the second group ofproducts are presented to the user. At step 435, the gesture of the useris recognized. At step 440, at least one selection of products isreceived through the gesture of the user. At step 445, a cartoon figurethat represents the user is created. At step 450, a user interactivegame is executed. The user may be represented by the cartoon figure inthe game.

At step 455, a coupon is generated after the game. In an embodiment, thecoupon is generated when the user wins the game. At step 460, the couponis transmitted to the user, for example, via an email, a text message,etc. At step 465, the final balance is calculated. At step 470, thefinal balance is presented to the user.

At step 475, the payment is received from the user, e.g., throughreading the financial card (e.g., credit card, debit card, gift card,etc.) of the user. At step 480, the user is informed of at least onemethod to receive the selected one or more products. For example, the atleast one method may include delivering the selected one or moreproducts to the user's home at a specific time. In addition oralternatively, the at least one method may further include picking upthe one or more products at a specific location at a specific time. Atstep 485, the transaction is completed.

FIG. 5 illustrates an exemplary diagram of the cartoon generator 210 inFIG. 2. The cartoon generator 210 includes a skeleton mapper 510, adepth sensor 520, and an image synthesizer 530. The skeleton mapper 510may convert a user image 310 to a skeleton image 515. The user image 310may be taken by the camera 115 in FIG. 2. The depth sensor 520 maycapture a depth image 525 of the user 120. The image synthesizer 530 maycombine the skeleton image 515 and the depth image 525 to generate thecartoon FIG. 535. In an embodiment, the depth sensor 520 and the camera115 are turned on all the time. As a result, the cartoon FIG. 535 mayrepresent the user 120 in real time. For example, when the user 120makes a movement (e.g., run, jump, laugh, etc.), the cartoon FIG. 535may make the same movement. In an embodiment, the cartoon FIG. 535 maybe a representation of the user 120 in the game executed by the gamingunit 245.

FIG. 6 is a flowchart of an exemplary process for creating a cartoonfigure of a user. The process may be implemented by the cartoongenerator 210 of the recommendation device 110. At step 610, a userimage is obtained. The user image is captured by a camera, e.g., thecamera 115. At step 620, a skeleton image of the user is obtained basedon the user image. At step 630, a depth image of the user is obtained.At step 640, a cartoon figure of the user is created based on theskeleton image and the depth image.

FIG. 7 illustrates an exemplary diagram of the face-based recommender255 in FIG. 2, according to an embodiment of the present teaching. Theface-based recommender 255 includes an age determiner 720, a genderdeterminer 725, a product selector 740, a user recognizer 710, apurchase history extractor 730, and a product filter 745. The face-basedrecommender 255 may further include a database updater 140, a userdatabase 715, and a purchase history database 735. The components of theface-based recommender 255 may be arranged as shown or in any othersuitable manner.

The age determiner 720 may determine the age of the user based on thefacial part of the image 320. Additionally, the gender determiner 725may determine the gender of the user based on the facial part of theimage 320. The product selector 740 may select a group of products froma purchase history database 735 based on the determined age and thedetermined gender of the user. In an embodiment, the purchase historydatabase 735 may be stored in the content server 140. As such, theproduct selector 740 may obtain the group of products from the purchasehistory database stored in the content server 140 directly. In anembodiment, the database updater 750 may update the purchase historydatabase 735 of the face-based recommender 255 regularly according tothe purchase history database of the content server 140. As such, thepurchase history database 735 of the face-based recommender 255 may be areplica of the purchase history database stored in the content server140. As a result, the product selector 740 may select the group ofproducts from the purchase history database 735 of the face-basedrecommender 255. More details about the product selector 740 would bedescribed in FIGS. 9-10.

The user database 715 may include a plurality of facial parts of theimages of the previous users who have made purchases using therecommendation device 110. The database updater 750 may update the userdatabase 715 regularly according to the user database stored in thecontent server 140. The user recognizer 710 may determine whether theuser 120 has made purchases using the recommendation device 110 based onthe facial part of the image 320. If a similar facial part of the imageis found in the user database, it is determined the user 120 has madepurchases using the recommendation device 110 before. Then the purchasehistory extractor 730 may obtain products that the user has purchasedbefore from the purchase history database 735.

The product filter 745 may obtain a plurality of products from theproduct selector 740 and/or the purchase history extractor 730. Theproduct filter 745 may further exclude one or more products from theplurality of products received by the product filter 745. The one ormore products may be “regular” products which are purchased by previouscustomers of both genders and at least a predetermined range of ages.For example, the one or more products may include toilet paper, flowers,etc. This is done so that only the most “distinctive” products withrespect to the age and gender of the user are recommended as the firstgroup of products to the user.

FIG. 8 is a flowchart of an exemplary process for providing personalizedrecommendations based on a facial part of a user image, according to anembodiment of the present teaching. The process may be implemented bythe face-based recommender 255 of the recommendation device 110.

At step 810, the age of the user is determined based on the facial partof the image. At step 820, the gender of the user is determined based onthe facial part of the image. At step 830, a group of products areselected based on the age and the gender of the user. At step 840, theuser database of the face-based recommender is updated according to theuser database stored in the content server.

At step 850, the user database is searched based on the facial part ofthe image. The user database may include a plurality of facial parts ofthe images of the previous users who have made purchases using therecommendation device 110. At step 855, it is determined whether theuser is identified in the user database. If so, it is indicated that theuser has made purchases using the recommendation device before. Theprocess proceeds to step 860. Otherwise, it is indicated that the userhas not made a purchase using the recommendation device before. Theprocess proceeds to step 880.

At step 860, the purchase history database of the face-based recommenderis updated. At step 870, the one or more products that the user haspurchased before using the recommendation device are extracted. At step880, the “regular” products have been excluded from a plurality ofproducts. The plurality of products may include the group of productsselected based on the age and gender of the user. The plurality ofproducts may further include the one or more products that the user haspurchased before. At step 890, the remaining products are provided asthe first group of products.

FIG. 9 illustrates an exemplary diagram of the product selector 740 inFIG. 7, according to an embodiment of the present teaching. The productselector 740 includes a product extractor 910, a score calculator 930, aproduct ranker 940, and a product determiner 950. The components of theproduct selector 740 may be arranged as shown or in any other suitablemanner.

The product extractor 910 may extract a subgroup of products from thepurchase history database 735 based on the age and the gender of theuser 120. Specifically, the subgroup of products from the purchasehistory database 735 may be purchased by the previous users with thesame gender of the user 120 and within a predetermined range of the userage. For example, the gender of the user 120 is determined as male, andthe age of the user is determined as 24 years old. The predeterminedrange of the user age may be between (x−σ) and (x+σ), where x is thedetermined age of the user (i.e., x=24 in this example), and σ is apredetermined age parameter. For example, σ may be 5, 8, 10, etc. Byexample, the predetermined age parameter σ is 5. Accordingly, thepredetermined range of the user age may be between 19 years old and 29years old.

Table 1 shows an example of a subgroup of products from the purchasehistory database 735. As shown, the first column indicates the subgroupof products includes, but not limited to, tissue, helmet, and backpack.Each product may be recorded in more than one rows of table 1. Thesecond and the third columns indicate the genders and the ages of theprevious users who purchase the products. As described above, the genderof the previous users (as indicated in the second column) is the same asthe gender of the user 120, i.e., male in this example. The ages of theprevious users (as indicated in the third column) are within a rangebetween 19 years old and 29 years old. The last column of table 1indicates the number of purchases for each product by a male user withan age indicated by the third column.

TABLE 1 A subgroup of products from the purchase history databaseProduct Gender Age Number of Purchase Tissue Male 24  5 Helmet Male 2510 Tissue Male 25 15 Backpack Male 20 20 . . . . . . . . . . . .

The score calculator may calculate a score for each of the subgroup ofproducts, e.g. in table 1. In an embodiment, the score for each of thesubgroup of products may be calculated as:

$\begin{matrix}{{{Score}\left( {{product},{gender},{age}} \right)} = {\sum\limits_{{{age} - \sigma} \leq x \leq {{age} + \sigma}}\; {{{count}\left( {{gender},x} \right)}e^{- \frac{{({x - {age}})}^{2}}{2\sigma^{2}}}}}} & (1)\end{matrix}$

where gender is the determined gender of the user (i.e., male), age isthe determined age of the user (i.e., 24 years old), Score(product,gender, age) represents the score for the product provided the genderand the age of the user, a is the predetermined age parameter (i.e., 5in this example), x is the age of the previous user who purchases theproduct, and count (gender, x) represents the number of purchases of theproducts by the previous users with the gender and age x.

Table 2 is an example of the calculated score(product, gender, age) foreach of the subgroup of products. Different from table 1, each product(as shown in the first column) may be recorded in only one row of table2. The second column and the third column of table 2 represent thedetermined gender and age of the user, respectively. The last columnshows the calculated scores for each product.

TABLE 2 A calculated score for each of the subgroup of products. ProductGender Age Score Tissue Male 24 5 Helmet Male 24 3 Backpack Male 24 7 .. . . . . . . . . . .

The product ranker 940 may rank the subgroup of products, e.g., based onthe scores. An example of the ranked subgroup of products may be shownin table 3. As shown, the order of the subgroup of products may beranked according to the associated scores.

TABLE 3 A ranked subgroup of products based on the associated scores.Product Gender Age Score Backpack Male 24 7 Tissue Male 24 5 Helmet Male24 3 . . . . . . . . . . . .

The product determiner 950 may select one or more products from thesubgroup of products based on the ranking, e.g., as shown in table 3.For example, the product determiner 950 may select the top product intable 3, i.e., the backpack. For another example, the product determiner950 may select the top two products in table 3, i.e., the backpack andthe tissue. For yet another example, the product determiner 950 mayselect the top three products in table 3, i.e., the backpack, thetissue, and the helmet.

FIG. 10 is a flowchart of an exemplary process for providing one or moreproducts based on the age and the gender of the user, according to anembodiment of the present teaching. The process may be implemented bythe product selector 740 in FIG. 9.

At step 1010, a subgroup of products from the purchase history databaseis obtained. The subgroup of products may be purchased by the previoususers with the same gender of the user 120 and within a predeterminedrange of the user age. The predetermined range of the user age may bebetween (x−σ) and (x+σ), where x is the determined age of the user, andσ is a predetermined age parameter. For example, σ may be 5, 8, 10, etc.An example of the subgroup of products may be shown as table 1.

At step 1020, a score is calculated for each of the subgroup ofproducts. In an embodiment, the score for each of the subgroup ofproducts may be calculated based on equation (1). An example of thecalculated score for each of the subgroup of products is shown in table2. At step 1030, the subgroup of products is ranked according to thescores. An example of the ranked subgroup of products is shown in table3. At step 1030, one or more products are selected based on the ranking.

FIG. 11 illustrates an exemplary diagram of the body-based recommender260 in FIG. 2, according to an embodiment of the present teaching. Thebody-based recommender 260 may include a database updater 1110, aproduct database 1120, a feature extractor 1115, a down-pooling unit1135, an attribute classifier 1165, a parameter configurator 1170, aninitial value generator 1140, a termination condition examiner 1130, aplurality of parameters 1145 for the feature model 1125 and theattribute model 1160, a cost function 1150, an attribute extractor 1155,and a product matcher 1175. The components of the body-based recommender260 may be arranged as shown or in any other suitable manner.

The body-based recommender 260 may perform two operations. In the firstoperation, a plurality of training images from the product database 1120may be used to train the feature model and the attribute model andobtain accurate values for the parameters of the feature model and theattribute model. This is done so that the body-based recommender 260 maybe able to obtain the accurate values of a plurality of attributes of animage.

Specifically, the initial value generator 1140 may generate initialvalues for the parameters 1145 of the feature model 1125 and theattribute model 1160. The database updater 1110 may update the productdatabase 1120 of the body-based recommender. In an embodiment, theupdated product database 1120 may be a replica of the product databaseof the content server 140.

The feature extractor 1115 may obtain the training images from theproduct database and extract a plurality of features of the product ineach of the training images. In an embodiment, the feature extractor1115 may be a convolutional neural network. The plurality of features ofthe product may include, but not limited to, the width, the length, theedge, and the angle.

The down-pooling unit 1135 may obtain a subset of the plurality offeatures based on the plurality of features for each of the trainingimages. For example, the subset of the plurality of features may beobtained by down sampling the plurality of features. For anotherexample, each value of the subset of the plurality of features may be anaverage of a portion of the plurality of features. For yet anotherexample, each value of the subset of the plurality of features may be anextrema (i.e., a maximal value or a minimal value) of a portion of theplurality of features.

The attribute classifier 1165 may determine the values of a plurality ofattributes of each product of the training images based on each subsetof the plurality of features. The plurality of attributes of a productin a training image may include, but not limited to, the pattern of theproduct and the color of the product.

The attribute extractor 1155 may extract the pre-stored attribute valuesfor each training image. The parameter configurator 1170 may calculatethe cost function based on the pre-stored attribute values and thedetermined attribute values for each of the training images. In someexamples, the cost function may be a function of the differences betweenthe determined and extracted attribute values are calculated. Theparameter configurator 1170 may further reconfigure the values of theparameters 1145 for the feature model 1125 and the attribute model 1160so that the value of the cost function may be further reduced.

The termination condition examiner 1130 may determine whether atermination condition is satisfied. In an example, the terminationcondition may indicate the value of the cost function is within apredetermined range. If so, the first operation for training the featuremodel 1125 and the attribute model 1160 is complete. Otherwise, theabove process repeats until the termination condition is satisfied.

After the first operation for training the feature model 1125 and theattribute model 1160 is complete, the body-based recommender 260 mayperform the second operation. In the second operation, the body-basedrecommender 260 may provide personalized recommendations based on atleast one non-facial part of a user image.

Specifically, the feature extractor 1115 may obtain at least onenon-facial part of the user image 330. The feature extractor 1115 mayfurther extract a plurality of features of each product in the at leastone non-facial part of the user image 330. In an embodiment, the featureextractor 1115 may be the convolutional neural network. The plurality offeatures may include, but not limited to, the width, the length, theedge, and the angle.

The down-pooling unit may obtain a subset of the plurality of featuresfrom the plurality of features for each of the at least one non-facialpart of the user image 330. For example, the subset of the plurality offeatures may be obtained by down sampling the plurality of features foreach non-facial part of the image 330. For another example, each valueof the subset of the plurality of features may be an average of aportion of the plurality of features for each non-facial part of theimage 330. For yet another example, each value of the subset of theplurality of features may be an extrema (i.e., a maximal value or aminimal value) of a portion of the plurality of features for eachnon-facial part of the image 330.

The attribute classifier 1165 may determine the values of a plurality ofattributes of the each product in the at least one non-facial part ofthe image 330. The plurality of attributes may include, but not limitedto, the pattern of the product and the color of the product. The productmatcher 1175 may search the product database 1120 for the one or moreproducts having the same or similar values of the plurality ofattributes for each of the non-facial part of the image 330. The productmatcher 1175 may further output the selected products as the secondgroup of products.

FIG. 12 is a flowchart of an exemplary process for training the featuremodel 1125 and an attribute model 1160, according to an embodiment ofthe present teaching. The process may be implemented by the body-basedrecommender 260.

At step 1210, initial parameter values for the feature model and theattribute model are obtained. At step 1215, the product database of thebody-based recommender is updated. In an embodiment, the updated productdatabase may be a replica of the product database of the content server.At step 1220, a training image is obtained from the product database. Atstep 1225, a plurality of features of the product in the training imageis determined, e.g., using a convolutional neural network. The pluralityof features of the product may include, but not limited to, the width,the length, the edge, and the angle.

At step 1230, a subset of the plurality of features is obtained. Forexample, the subset of the plurality of features may be obtained by downsampling the plurality of features. For another example, each value ofthe subset of the plurality of features may be an average of a portionof the plurality of features. For yet another example, each value of thesubset of the plurality of features may be an extrema (i.e., a maximalvalue or a minimal value) of a portion of the plurality of features.

At step 1235, the values of a plurality of attributes of the product inthe training image are determined based on the subset of the pluralityof features. The plurality of attributes may include, but not limitedto, the pattern of the product and the color of the product. At step1240, it is determined if there is any more training image from theproduct database. If so, the process returns to step 1220. Otherwise,the process proceeds to step 1245. At step 1245, the pre-storedattribute values for each training image are extracted. At step 1250, acost function is calculated. In some examples, the cost function may bea function of the differences between the determined and extractedattribute values are calculated. At step 1255, the parameters for thefeature model and the attribute model are reconfigured so that the valueof the cost function may be further reduced. At step 1260, it isdetermined whether a termination condition is satisfied. In an example,the termination condition may indicate the value of the cost function iswithin a predetermined range. If so, the process is finished at step1265. Otherwise, the process returns to step 1220.

FIG. 13 is a flowchart of an exemplary process for providingpersonalized recommendations based on at least one non-facial part of auser image, according to an embodiment of the present teaching. Theprocess may be implemented by the body-based recommender 260.

At step 1310, the product database is updated. At step 1320, anon-facial part of the user image is obtained. At step 1330, a pluralityof features of the product in the non-facial part of the user image isdetermined, e.g., using the convolutional neural network. The pluralityof features of the product may include, but not limited to, the width,the length, the edge, and the angle.

At step 1340, a subset of the plurality of features is obtained. Forexample, the subset of the plurality of features may be obtained by downsampling the plurality of features. For another example, each value ofthe subset of the plurality of features may be an average of a portionof the plurality of features. For yet another example, each value of thesubset of the plurality of features may be an extrema (i.e., a maximalvalue or a minimal value) of a portion of the plurality of features.

At step 1350, the values of a plurality of attributes of the product inthe training image are determined based on the subset of the pluralityof features. The plurality of attributes may include, but not limitedto, the pattern of the product and the color of the product. At step1360, one or more products having the same or similar values of theplurality of attributes are selected from the product database. At step1370, it is determined if there is any more non-facial part of theimage. If so, the process returns to step 1320. Otherwise, the processproceeds to step 1380, where the selected products are outputted as thesecond group of products.

FIG. 14 illustrates an example of providing personalized recommendationsbased on a non-facial part of a user image, according to an embodimentof the present teaching. As shown, the non-facial part of the image 1410includes a jean. Based on the non-facial part of the image, thebody-based recommender 260 provides the second group of products, i.e.,different jeans with a similar dressing style as shown in the non-facialpart of the image 1410. In addition to the jeans, the body-basedrecommender 260 may further provide other products 1430 that may matchthe dressing style of the jean. For example, the body-based recommender260 may further provide a shirt, and a pair of shoes that match thestyle of the jean in the non-facial part of the user image 1410.

FIG. 15 illustrates an exemplary diagram of the initial value generator1140. The initial value generator 1140 may include a feature extractor1510, a classifier 1535, a feature model 1525, a random value generator1555, a termination condition examiner 1530, a plurality of parameters1540 for the feature model 1525, a parameter configurator 1560, a costfunction 1545, a multiplexer 1515, a plurality of databases 1520, and aclass extractor 1550.

The random value generator 1555 may generate a plurality of randomvalues as the initial values 1565 for the parameters of the attributemodel 1160 in the body-based recommender 260. The random value generator1555 may further output the initial values 1565 for the parameters ofthe attribute model 1160 in the body-based recommender 260.

In addition, the random value generator 1555 may generate random valuesas initial values for the parameters 1540 of the feature model 1525 inthe initial value generator 1140. The multiplexer 1515 may multiplex aplurality of databases 1520 (e.g., DB1, DB2, . . . , DBn as shown inFIG. 15). In an embodiment, the product database may be one of theplurality of databases 1520.

The feature extractor 1510 may obtain the training images from themultiplexed databases. The feature extractor 1510 may further determinea plurality of features for each of the training images using thefeature model 1525. The classifier 1535 may determine a class for eachobject in the training images. The class may be a category that theobject in the training image belongs to. For example, the class mayindicate the object in the training image is a vegetable, an animal, acar, a plane, etc.

The class extractor 1550 may extract a pre-stored class for eachtraining image. The parameter configurator 1560 may calculate the costfunction 1545 based on the pre-stored class and the determined class foreach of the training image. In an example, the cost function may be afunction of the differences between the determined class and thepre-stored class for each training image. The parameter configurator1560 may further reconfigure the parameters of the feature model 1525 toreduce the value of the cost function 1545.

The termination condition examiner 1530 may determine whether atermination condition is satisfied. In an embodiment, the terminationcondition indicates that the value of the cost function is within apredetermined range. If so, the parameter configurator may output thevalues of the parameters 1540 for the feature model 1525 as the initialvalues of the parameters for the feature model 1125 in the body-basedrecommender 260. If not, the above operations repeat until thetermination condition is satisfied.

FIG. 16 is a flowchart of an exemplary process of providing initialparameter values for the feature model 1125 and the attribute model 1160in the body-based recommender 260 in FIG. 11. The process may beimplemented by the initial value generator 1140 of the body-basedrecommender 260.

At step 1610, random values are generated as initial values for theparameters of the feature model in the initial value generator. At step1615, a plurality of databases (e.g., DB1, DB2, . . . , DBn in FIG. 15)are multiplexed. At step 1620, a training image is obtained from themultiplexed databases. At step 1625, a plurality of features isdetermined based on the training image. At step 1630, a class isdetermined for the training image. The class may a category that theobject in the training image belongs to. For example, the class mayindicate the object in the training image is a vegetable, an animal, acar, a plane, etc. At step 1635, it is determined whether there is anymore unchecked training image from the multiplexed databases. If so, theprocess returns to step 1620. Otherwise, the process proceeds to step1640.

At step 1640, a pre-stored class is extracted for each training image.At step 1645, a cost function is calculated. In an example, the costfunction may be a function of the differences between the determinedclass and the pre-stored class for each training image. At step 1650,the parameters for the feature model is reconfigured to reduce the costfunction. At step 1655, it is determined whether a termination conditionis satisfied. In an embodiment, the termination condition indicates thatthe value of the cost function is within a predetermined range. If so,the process proceeds to step 1660. Otherwise, the process returns tostep 1620.

At step 1660, random values are generated as the initial values for theparameters of the attribute model 1160 in the body-based recommender260. At step 1670, the initial values for the parameters of theattribute model 1160 in the body-based recommender 260 are outputted.Additionally, the values of the parameters for the feature model 1525 inthe initial value generator 1140 are outputted as the initial values ofthe parameters of the feature model 1125 in the body-based recommender260.

FIG. 17 illustrates an exemplary process of training the feature model1125 and the attribute model 1160 of the body-based recommender 260,according to an embodiment of the present teaching. Training the featuremodel of the body-based recommender with random initial parameter valuesmay be a very slow process. Using the parameter values of anothertrained feature model as initial parameter values for the feature modelmay expedite the training process of the feature model of the body-basedrecommender.

The upper part 1710 of FIG. 17 may illustrate a process of supervisedpre-training on a huge image database 1713. For example, the upper part1710 may illustrate the operation of the initial value generator 1140.Accordingly, the huge image database 1713 may be the multiplexeddatabases 1520 as shown in FIG. 15. In an embodiment, the huge imagedatabase 1713 may include 1.2 million images. The first convolutionalneural network 1715 may determine a plurality of features 1730 for eachof the images from the huge image database 1713 using a first featuremodel. The initial parameter values for the first feature model may berandom.

By example of FIG. 17, the first convolutional neural network 1715 maydetermine 4096 features for each of the images. A classifier (e.g., theclassifier 1535) may determine one of a plurality of classes 1740 (e.g.,1000 classes) that the object in each image belongs to. The one of the1000 classes 1740 may indicate the object in an image is one of avegetable, an animal, a person, a car, a plane, etc. The parameters ofthe first feature model may be reconfigured to reduce the differencesbetween the pre-stored class and the determined class for each of theimages from the huge image database 1713. The above process may repeatuntil a first termination condition is satisfied. In an embodiment, thefirst termination condition may indicate the differences between thedetermined classes and the pre-stored classes of the images from thehuge image database 1713 are within a range. When the first terminationcondition is satisfied, the training process of the first feature modelis complete.

The lower part 1720 of FIG. 17 may illustrate a process of training thesecond feature model for the second convolutional neural network 1725 onthe product database 1723. The product database 1723 may be similar toproduct database 1120. In an embodiment, the product database 1723 mayinclude 1 million images of different products. The second convolutionalneural network 1725 may determine a plurality of features 1750 for eachof the product images from the product database 1723 using a secondfeature model. As described above, the parameter values for the firstfeature model may be used as the initial parameter values for the secondfeature model. By example of FIG. 17, the second convolutional neuralnetwork 1725 may determine 4096 features for each of the images. Adown-pooling unit (not shown) may determine a subset of the featuresfrom the plurality of features 1750. The subset of the features may forma latent layer 1760.

In this example, the latent layer 1760 includes 1024 features. Anattribute classifier (not shown) may determine values for a plurality ofattributes 1775 based on the latent layer 1760 for each of the productimages using an attribute model. The initial parameter values for theattribute model may be random. The plurality of attributes may include,but not limited to, a color and a pattern of each product in the productimages. The parameters of the second feature model may be reconfiguredto reduce the differences between the pre-stored attribute values andthe determined attribute values for each of the product images from theproduct database 1723. The above process may repeat until a secondtermination condition is satisfied. In an embodiment, the secondtermination condition may indicate the differences between thedetermined attribute values and the pre-stored attribute values of theproduct images from the product database 1723 are within a range. Whenthe second termination condition is satisfied, the training process ofthe second feature model and the attribute model is complete.

FIG. 18 depicts a general mobile device architecture on which thepresent teaching can be implemented and has a functional block diagramillustration of a mobile device hardware platform which includes userinterface elements. The mobile device may be a general-purpose mobiledevice or a special purpose mobile device. In this example, the userdevice is a mobile device 1800, including but is not limited to, a smartphone, tablet, music player, handled gaming console, GPS. The mobiledevice 1800 in this example includes one or more central processingunits (CPUs) 1802, one or more graphic processing units (GPUs) 1804, adisplay 1806, a memory 1808, a communication platform 1810, such as awireless communication module, storage 1812, and one or moreinput/output (I/O) devices 1814. Any other suitable component, such asbut not limited to a system bus or a controller (not shown), may also beincluded in the mobile device 1800. As shown in FIG. 18, one or moreapplications 1882 may be loaded into the memory 1808 from the storage1812 in order to be executed by the CPU 1802. The applications 1882 maybe executed on various mobile operating systems, e.g., iOS, Android,Windows Phone, etc. Execution of the applications 1882 may cause themobile device 1800 to perform the processing as described above, e.g.,in FIGS. 4, 6, 8, 10, 12, 13, and 16.

FIG. 19 depicts a general computer architecture on which the presentteaching can be implemented and has a functional block diagramillustration of a computer hardware platform which includes userinterface elements. The computer may be a general-purpose computer or aspecial purpose computer. This computer 1900 can be used to implementany components of the system for presenting personalized content asdescribed herein. Different components of the systems and devices 110,210, 255, 740, 260, and 1140, e.g., as depicted in FIGS. 2, 5, 7, 9, 11,and 15 can all be implemented on one or more computers such as computer1900, via its hardware, software program, firmware, or a combinationthereof. Although only one such computer is shown, for convenience, thecomputer functions relating to dynamic relation and event detection maybe implemented in a distributed fashion on a number of similarplatforms, to distribute the processing load.

The computer 1900, for example, includes COM ports 1902 connected to andfrom a network connected thereto to facilitate data communications. Thecomputer 1900 also includes a central processing unit (CPU) 1904, in theform of one or more processors, for executing program instructions. Theexemplary computer platform includes an internal communication bus 1906,program storage and data storage of different forms, e.g., disk 1908,read only memory (ROM) 1910, or random access memory (RAM) 1912, forvarious data files to be processed and/or communicated by the computer,as well as possibly program instructions to be executed by the CPU. Thecomputer 1900 also includes an I/O component 1914, supportinginput/output flows between the computer and other components thereinsuch as user interface elements 1916. The computer 1900 may also receiveprogramming and data via network communications.

Hence, aspects of the method for presenting personalized content, asoutlined above, may be embodied in programming. Program aspects of thetechnology may be thought of as “products” or “articles of manufacture”typically in the form of executable code and/or associated data that iscarried on or embodied in a type of machine readable medium. Tangiblenon-transitory “storage” type media include any or all of the memory orother storage for the computers, processors or the like, or associatedmodules thereof, such as various semiconductor memories, tape drives,disk drives and the like, which may provide storage at any time for thecomputer-implemented method.

All or portions of the computer-implemented method may at times becommunicated through a network such as the Internet or various othertelecommunication networks. Such communications, for example, may enableloading of the software from one computer or processor into another.Thus, another type of media that may bear the elements of thecomputer-implemented method includes optical, electrical, andelectromagnetic waves, such as used across physical interfaces betweenlocal devices, through wired and optical landline networks and overvarious air-links. The physical elements that carry such waves, such aswired or wireless links, optical links or the like, also may beconsidered as media bearing the computer-implemented method. As usedherein, unless restricted to tangible “storage” media, terms such ascomputer or machine “readable medium” refer to any medium thatparticipates in providing instructions to a processor for execution.

Hence, a machine readable medium may take many forms, including but notlimited to, a tangible storage medium, a carrier wave medium or physicaltransmission medium. Non-volatile storage media include, for example,optical or magnetic disks, such as any of the storage devices in anycomputer(s) or the like, which may be used to implement the system orany of its components as shown in the drawings. Volatile storage mediainclude dynamic memory, such as a main memory of such a computerplatform. Tangible transmission media include coaxial cables; copperwire and fiber optics, including the wires that form a bus within acomputer system. Carrier-wave transmission media can take the form ofelectric or electromagnetic signals, or acoustic or light waves such asthose generated during radio frequency (RF) and infrared (IR) datacommunications. Common forms of computer-readable media thereforeinclude for example: a floppy disk, a flexible disk, hard disk, magnetictape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any otheroptical medium, punch cards paper tape, any other physical storagemedium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM,any other memory chip or cartridge, a carrier wave transporting data orinstructions, cables or links transporting such a carrier wave, or anyother medium from which a computer can read programming code and/ordata. Many of these forms of computer readable media may be involved incarrying one or more sequences of one or more instructions to aprocessor for execution.

Those skilled in the art will recognize that the present teaching isamenable to a variety of modifications and/or enhancements. For example,although the implementation of various components described above may beembodied in a hardware device, it can also be implemented as a firmware,firmware/software combination, firmware/hardware combination, or ahardware/firmware/software combination.

While the foregoing description and drawings represent embodiments ofthe present teaching, it will be understood that various additions,modifications, and substitutions may be made therein without departingfrom the spirit and scope of the principles of the present teaching asdefined in the accompanying claims. One skilled in the art willappreciate that the present teaching may be used with many modificationsof form, structure, arrangement, proportions, materials, elements, andcomponents and otherwise, used in the practice of the disclosure, whichare particularly adapted to specific environments and operativerequirements without departing from the principles of the presentteaching. The presently disclosed embodiments are therefore to beconsidered in all respects as illustrative and not restrictive, thescope of the present teaching being indicated by the appended claims andtheir legal equivalents, and not limited to the foregoing description.

What is claimed is:
 1. A method, implemented on a machine having atleast one processor, storage, and a communication platform connected toa network for electronic commerce (E-commerce), comprising: obtaining animage of a user; determining a plurality of features based on the imageof the user; selecting a group of products based on the plurality offeatures; and providing a recommendation to the user based on the groupof products.
 2. The method of claim 1, wherein the determining theplurality of features based on the image of the user comprises:decomposing the image into a facial part of the image and at least onenon-facial part of the image; computing a first portion of the pluralityof features based on the facial part of the image; and computing asecond portion of the plurality of features based on the at least onenon-facial part of the image.
 3. The method of claim 2, wherein theselecting the group of products based on the plurality of featurescomprises: selecting a first portion of the group of products based onthe first portion of the plurality of features; and selecting a secondportion of the group of products based on the second portion of theplurality of features.
 4. The method of claim 2, wherein the computingthe second portion of the plurality of features based on the at leastone non-facial part of the image comprises computing the second portionof the plurality of features based on each of the at least onenon-facial part of the image using at least a convolutional neuralnetwork.
 5. The method of claim 3, wherein the selecting the firstportion of the group of products based on the first portion of theplurality of features comprises: determining at least a subgroup ofproducts from a purchase history database, the at least a subgroup ofproducts being purchased by a specific group of customers; calculating ascore for each of the at least a subgroup of products based at least inpart on the first portion of the plurality of features; ranking the atleast a subgroup of products based on the score for each of the subgroupof products; and selecting the first portion of the group of productsfrom the at least a subgroup of products based on the ranking.
 6. Themethod of claim 5, wherein the selecting the first portion of the groupof products based on the first portion of the plurality of featuresfurther comprises removing one or more products from the first portionof the group of products, the one or more products being purchased byprevious customers of both genders and at least a predetermined range ofages.
 7. The method of claim 5, wherein the first portion of theplurality of features includes at least one of an age and a gender ofthe user.
 8. The method of claim 7, wherein each of the specific groupof customers has a same gender as the user and an age within a range ofthe age of the user.
 9. The method of claim 3, wherein the selecting thesecond portion of the group of products based on the second portion ofthe plurality of features comprises selecting the second portion of thegroup of products from a product database, a plurality of features ofthe second portion of the group of products matching the second portionof the plurality of features.
 10. The method of claim 1, furthercomprising executing a game program so that the user can play with agame.
 11. A machine-readable tangible and non-transitory medium havinginformation for electronic commerce (E-commerce), wherein theinformation, when read by the machine, causes the machine to perform thefollowing: obtaining an image of a user; determining a plurality offeatures based on the image of the user; selecting a group of productsbased on the plurality of features; and providing a recommendation tothe user based on the group of products.
 12. The machine-readabletangible and non-transitory medium of claim 11, wherein the determiningthe plurality of features based on the image of the user comprises:decomposing the image into a facial part of the image and at least onenon-facial part of the image; computing a first portion of the pluralityof features based on the facial part of the image; and computing asecond portion of the plurality of features based on the at least onenon-facial part of the image.
 13. The machine-readable tangible andnon-transitory medium of claim 12, wherein the selecting the group ofproducts based on the plurality of features comprises: selecting a firstportion of the group of products based on the first portion of theplurality of features; and selecting a second portion of the group ofproducts based on the second portion of the plurality of features. 14.The machine-readable tangible and non-transitory medium of claim 12,wherein the computing the second portion of the plurality of featuresbased on the at least one non-facial part of the image comprisescomputing the second portion of the plurality of features based on eachof the at least one non-facial part of the image using at least aconvolutional neural network.
 15. The machine-readable tangible andnon-transitory medium of claim 13, wherein the selecting the firstportion of the group of products based on the first portion of theplurality of features comprises: determining at least a subgroup ofproducts from a purchase history database, the at least a subgroup ofproducts being purchased by a specific group of customers; calculating ascore for each of the at least a subgroup of products based at least inpart on the first portion of the plurality of features; ranking the atleast a subgroup of products based on the score for each of the subgroupof products; and selecting the first portion of the group of productsfrom the at least a subgroup of products based on the ranking.
 16. Themachine-readable tangible and non-transitory medium of claim 15, whereinthe selecting the first portion of the group of products based on thefirst portion of the plurality of features comprises removing one ormore products from the first portion of the group of products, the oneor more products being purchased by previous customers of both gendersand at least a predetermined range of ages.
 17. The machine-readabletangible and non-transitory medium of claim 15, wherein the firstportion of the plurality of features includes at least one of an age anda gender of the user.
 18. The machine-readable tangible andnon-transitory medium of claim 17, wherein each of the specific group ofcustomers has a same gender as the user and an age within a range of theage of the user.
 19. The machine-readable tangible and non-transitorymedium of claim 13, wherein the selecting the second portion of thegroup of products based on the second portion of the plurality offeatures comprises selecting the second portion of the group of productsfrom a product database, a plurality of features of the second portionof the group of products matching the second portion of the plurality offeatures.
 20. The machine-readable tangible and non-transitory medium ofclaim 11, wherein the information, when read by the machine, furthercauses the machine to perform the following: executing a game program sothat the user can play with a game.
 21. A system having at least oneprocessor, storage, and a communication platform connected to a networkfor electronic commerce (E-commerce), comprising: a camera configuredfor obtaining an image of a user; an image processor configured for:determining a plurality of features based on the image of the user; andselecting a group of products based on the plurality of features; and adisplay configured for providing a recommendation to the user based onthe group of products.
 22. The system of claim 21, wherein the imageprocessor comprises: a photo cropper configured for decomposing theimage of the user into a facial part of the image and at least onenon-facial part of the image; a face-based recommender configured forselecting a first portion of a group of products based on the facialpart of the image; and a body-based recommender configured for selectinga second portion of the group of products based on the at least onenon-facial part of the image.
 23. The system of claim 22, wherein theface-based recommender comprises: an age determiner configured fordetermining an age of the user based on the facial part of the image; agender determiner configured for determining a gender of the user basedon the at least one non-facial part of the image; and a product selectorconfigured for selecting the first portion of the group of productsbased on the determined age and the gender of the user.
 24. The systemof claim 23, wherein the product selector comprises: a product extractorconfigured for determining at least a subgroup of products from apurchase history database, the at least a subgroup of products beingpurchased by a specific group of customers; a score calculatorconfigured for calculating a score for each of the at least a subgroupof products based at least in part on the age and gender of the user; aproduct ranker configured for ranking the at least a subgroup ofproducts based on the score for each of the at least a subgroup ofproducts; and a product determiner configured for selecting the firstportion of the group of products from the at least a subgroup ofproducts based on the ranking.
 25. The system of claim 23, furthercomprises a product filter configured for: removing one or more productsfrom the first portion of the group of products, the one or moreproducts being purchased by previous customers of both genders and atleast a predetermined range of ages; and outputting the first portion ofthe group of products after removing the one or more products from thefirst portion of the group of products.
 26. The system of claim 24,wherein each of the specific group of customers has a same gender as theuser and an age within a range of the age of the user.
 27. The system ofclaim 21, wherein the body-based recommender comprises: a featureextractor configured for determining a plurality of features for each ofthe at least one non-facial part of the image; an attribute classifierconfigured for determining one or more attributes for at least a portionof the plurality of features for each of the at least one non-facialpart of the image; and a product matcher configured for: selecting asecond portion of the group of products from the product database basedon the determined one or more attributes; and outputting the secondportion of the group of products.
 28. The system of claim 27, whereinthe feature extractor is a convolutional neural network.
 29. The systemof claim 21, further comprises a gaming unit configured for executing agame program so that the user can play with a game.